#完美
import cv2
import numpy as np

# 读取图片
img = cv2.imread('6.jpg')

# 设定原图中的四个点（顺时针或逆时针均可）
# 这里的点应该是你需要矫正的区域的四个角点
#4160*3120
#pts1 = np.float32([[136,575], [3609,620], [3745,2280], [73,2555]])
pts1 = np.float32([[136,575], [3620,620], [3739,2280], [56,2536]])
#第一个点
#x:0
#y:0


#第二个点
#x:|x2-x1|
#y:|y2-y1|

#第三个点
#x:|x3-x4|
#y:|y3-y2|

#第四个点
#x:0
#y:y4-y1

# 设定目标图中的四个点，通常是图像的四个角点
pts2 = np.float32([[0,0], [3470,0], [3672,2091], [0,1981]])


# 获取透视变换矩阵
M = cv2.getPerspectiveTransform(pts1, pts2)

# 进行透视变换
#
dst = cv2.warpPerspective(img, M, (3680,2000))

# 保存或显示结果
cv2.imwrite('output.jpg', dst)
#cv2.imshow('Output', dst)
#cv2.waitKey(0)
#cv2.destroyAllWindows()